package com.trdcore.zyzkt.utils;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.JWTCreationException;
 
import java.util.HashMap;
 
public class Psign {
 
    public static String getPsign(Integer appId, String fileId){
        Integer AppId = appId; //点播应用 appId。
        String FileId = fileId; //点播文件 ID。
        String AudioVideoType = "RawAdaptive";
        //播放的音视频类型，可选值
        // RawAdaptive：未加密的 转自适应码流 输出。
        //ProtectedAdaptive：私有加密或 DRM 保护的 转自适应码流 输出。
        //Transcode：转码 后输出。
        //Original：上传 的原始音视频。
        Integer RawAdaptiveDefinition = 10;
        Integer ImageSpriteDefinition = 10;
        Integer CurrentTime = Math.toIntExact(System.currentTimeMillis() / 1000);//派发签名当前 Unix 时间戳
//        Integer PsignExpire = 1589548067;//派发签名到期 Unix 时间戳，不填表示不过期。
//        String UrlTimeExpire = "5ebe9423‬";
        String PlayKey = "P0n2SD0oIfoZ5Pe0i6vS";//播放密钥
 
 
        HashMap<String, Object> urlAccessInfo = new HashMap<String, Object>();
//        urlAccessInfo.put("t", UrlTimeExpire);
        HashMap<String, Object> contentInfo = new HashMap<String, Object>();
        contentInfo.put("audioVideoType", AudioVideoType);
        contentInfo.put("rawAdaptiveDefinition", RawAdaptiveDefinition);
        contentInfo.put("imageSpriteDefinition", ImageSpriteDefinition);
 
 
            Algorithm algorithm = Algorithm.HMAC256(PlayKey);
            String token = JWT.create().withClaim("appId", AppId).withClaim("fileId", FileId)
                    .withClaim("contentInfo", contentInfo)
                    .withClaim("currentTimeStamp", CurrentTime)
//                    .withClaim("expireTimeStamp", PsignExpire)
                    .withClaim("urlAccessInfo", urlAccessInfo).sign(algorithm);
            return token;
    }
}